home *** CD-ROM | disk | FTP | other *** search
-
-
- function units_guardtower_setup()
- units_setup(9,false,ENET_EFFECT_PS_SETUPSMOKE_SMALL,ENET_EFFECT_GEOMETRY_GUARDTOWERSHADOW)
- end
-
- function units_guardtower_resetup()
- units_setup(9,false,nil,ENET_EFFECT_GEOMETRY_GUARDTOWERSHADOW)
- end
-
- function units_guardtower_select()
- units_select(22,4)
- end
-
- function units_guardtower_unselect()
- units_unselect()
- end
-
- function units_guardtower_selectenemy()
- uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
- end
-
- function units_guardtower_damaged()
- uniGetExecutor():applyDamage(uniGetLife())
- end
-
- function units_guardtower_highlight()
- uniGetExecutor():addEffectWithRadius(ENET_EFFECT_GEOMETRY_HIGHLIGHT,15)
- end
-
- function units_guardtower_explode()
- units_explode_big1()
- end
-
- function units_guardtower_move()
- end
-
- function units_guardtower_fire()
- local unit = uniGetExecutor()
- local gt = unit:getBone(ENBT_GUNTOWER,0)
- local hipower = gt:addSimpleEffect(ENET_EFFECT_PS_GUARDTOWER_HIPOWER)
- hipower:setLocalPosition(0,10,-8)
- local sound = unit:play3DSound("guardtower_guntower_rotate.wav",1)
- waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERTOTARGET,MATH_PI,uniGetTarget()))
- sound:destroy()
- local fireSpot = gt:getBone(ENBT_FIRE1, 0)
- fireSpot:addSimpleEffect(ENET_EFFECT_PS_GUARDTOWER_SPAWN):delayedDestroy(2.0)
- fireSpot:addSimpleEffect(ENET_EFFECT_LIGHT_GUARDTOWER_SPAWN):delayedDestroy(4.0)
- unit:play3DSound("guard tower generate field2.wav",0)
- unit:addAnimationToQueue(ENAT_PREPAREFORFIRE1,1)
- unit:addAnimationToQueue(ENAT_FIRE1,MATH_INFINITY)
- pause(1.9)
- unit:play3DSound("guard tower beam.wav",0)
- fireSpot:addBulletEffect(ENET_EFFECT_BULLET_3CHANNELSLIGHTNING):executeCommand(ENC_FIRE1)
- hipower:suspendedDestroy(0.2)
- pause(1.0)
- unit:setCurrentAnimationRepeatCount(1)
- sound = unit:play3DSound("guardtower_guntower_rotate.wav",1)
- unit:addAnimationToQueue(ENAT_AFTERFIRE1,1)
- pause(0.5)
- waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERDEFAULT,MATH_PI))
- sound:destroy()
- unit:addFireArrow()
- end
-
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_MOVE,"units_guardtower_move")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_FIRE1,"units_guardtower_fire")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_FIRE2,"units_guardtower_fire")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_SELECT,"units_guardtower_select")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_SELECTENEMY,"units_guardtower_selectenemy")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_UNSELECT,"units_guardtower_unselect")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_SETUP,"units_guardtower_setup")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_RESETUP,"units_guardtower_resetup")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_DAMAGED,"units_guardtower_damaged")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_EXPLODE,"units_guardtower_explode")
- registerCommand(ENSCRIPTSET_GUARDTOWER,ENC_HIGHLIGHT,"units_guardtower_highlight")
-
- -- make description of unit
- desc = getEffectDescriptionP(ENET_UNIT_GUARDTOWER)
- desc.ClassID = ENCLASS_MESHINSTANCE
- desc.EffectClassType = ENECT_GEOMETRY
- desc.FileName = "guardtower.rmd"
- desc.ScriptSet = ENSCRIPTSET_GUARDTOWER
- desc.MoveType = ENMOVE_SWIM
- desc.RenderType = ENRENDERTYPE_GEOMETRY
- desc.Material = ENMAT_RIGIDSKINNEDMESH
- desc.MaterialColors = units_materialcolors_human
-
- -- shadow
- desc = getEffectDescriptionP(ENET_EFFECT_GEOMETRY_GUARDTOWERSHADOW)
- desc.ClassID = ENCLASS_MESHINSTANCE
- desc.EffectClassType = ENECT_GEOMETRY
- desc.FileName = "guardtower_shadow.rmd"
- desc.RenderType = ENRENDERTYPE_SHADOW
- desc.Material = ENMAT_SHADOW
- desc.MaterialColors = units_materialcolors_shadow
-
- -- register new unit to logic
- unitDesc = logic_getUnitDescP(5)
- unitDesc.group = 2
- unitDesc.order = 6
- unitDesc.unit_res_id = ENET_UNIT_GUARDTOWER
- unitDesc.unit_icon_id = "Guardtower_h_small_normal.dds"
- unitDesc.active_id = "Guardtower_h_small_active.dds"
- unitDesc.pressed_id = "Guardtower_h_small_pressed.dds"
- unitDesc.big_icon_id = "Guardtower_h_big_normal.dds"
- unitDesc.small_icon_id = "Guardtower_u_stats.dds"
- unitDesc.HP = 9
- unitDesc.MP = 0
- unitDesc.WR = 4
- unitDesc.min_WR = 1
- unitDesc.WD = 2
- unitDesc.WR2 = 0
- unitDesc.min_WR2 = 0
- unitDesc.WD2 = 0
- unitDesc.ability = 1
- unitDesc.transport = 0
- unitDesc.value = 4
- unitDesc.race = 0
- unitDesc.fire_pause = 0.75
- unitDesc.move_pause = 0.7
- unitDesc.unit_info_scale = 0.03
- unitDesc.scn_name = "GTOWER"
-
- ----------- bullet spawning particle system effect for GuardTower
-
- function effects_PS_GUARDTOWER_SPAWN_onCreate()
- local effect = uniGetExecutor()
- effect:addRotationEffect(ENET_EFFECT_ROTATE_SPAWNINGPLAZMABALL,2.0)
- end
-
- desc = getEffectDescriptionP(ENET_EFFECT_PS_GUARDTOWER_SPAWN)
-
- desc.onCreate = "effects_PS_GUARDTOWER_SPAWN_onCreate"
-
- desc.ClassID = ENCLASS_SIMPLEPARTICLESYSTEM
- desc.EffectClassType = ENECT_PARTICLESYSTEM
-
- desc.ScriptSet = ENSCRIPTSET_UNKNOWN
- desc.RelativePosition = ENLOCALPOS_NOTSPECIFIED
- local vzbzd1 = D3DXVECTOR3:new(0,0,0)
- desc.LocalPosition = vzbzd1
- vzbzd1:delete()
- desc.isAnimateTexture = false
- desc.RenderType = ENRENDERTYPE_GEOMETRY
-
- Emitter = desc.PS.PSDescription
- Emitter.ParticleTypesNumber = 1
- local vzbzd2 = D3DXVECTOR3:new(0,0,0)
- Emitter.EmitterPosition = vzbzd2
- vzbzd2:delete()
- local vzbzd3 = D3DXVECTOR3:new(0,0,0)
- Emitter.EmitterDirection = vzbzd3
- vzbzd3:delete()
- Emitter.EmitterLifeTime = 10000
-
- PT = Emitter.ParticleTypesParams[1]
- PT.IsEmitterLocked = true
- PT.DrawOrder = 1
- PT.Material = ENMAT_PARTICLE_LIGHT
-
- PT.TextureName = "particle.dds";
-
- PT.ParticlesPerSecond = 0.0001;
- PT.InitialNumberOfParticles = 150.0;
- PT.BaseLifeTime = 2.0;
- PT.BaseLifeTimeVariance = 0.0;
- PT.BaseSpeed = 0.0;
- PT.BaseSpeedVariance = 0.0;
- PT.BaseAngle = 0.0;
- PT.BaseAngleVariance = 0.0;
- PT.BaseAngleSpeed = 0.0;
- PT.BaseAngleSpeedVariance = 0.0
- PT.BaseAngleSpeedDirection = 0;
- local vzbzd4 = D3DXVECTOR3:new(0.0,0.0,1.0)
- PT.BaseDirection = vzbzd4
- vzbzd4:delete()
- PT.DirectionRelativeness = ENREL_FROMPARENTCENTER
- local vzbzd5 = D3DXVECTOR3:new(0.0,0.0,0.0)
- PT.BaseDirectionVariance = vzbzd5
- vzbzd5:delete()
- local vzbzd6 = D3DXVECTOR3:new(0,0,0)
- PT.BasePosition = vzbzd6
- vzbzd6:delete()
- local vzbzd7 = D3DXVECTOR3:new(60,60,60)
- PT.BasePositionVariance = vzbzd7
- vzbzd7:delete()
- PT.EmittingSurfaceType = ENEST_FACESPHERE
- PT.BaseSize = 4.0;
- PT.BaseSizeVariance = 0.0;
-
-
- -- color over time
- PT.ColorOverTimeR[1].TimePercent = 0.0
- PT.ColorOverTimeR[1].Value = 0.0
- PT.ColorOverTimeG[1].TimePercent = 0.0
- PT.ColorOverTimeG[1].Value = 0.0
- PT.ColorOverTimeB[1].TimePercent = 0.0
- PT.ColorOverTimeB[1].Value = 1.0
-
- PT.ColorOverTimeR[2].TimePercent = 0.7
- PT.ColorOverTimeR[2].Value = 0.2
- PT.ColorOverTimeG[2].TimePercent = 0.7
- PT.ColorOverTimeG[2].Value = 0.2
- PT.ColorOverTimeB[2].TimePercent = 0.7
- PT.ColorOverTimeB[2].Value = 1.0
-
- PT.ColorOverTimeR[3].TimePercent = 1.0
- PT.ColorOverTimeR[3].Value = 0.2
- PT.ColorOverTimeG[3].TimePercent = 1.0
- PT.ColorOverTimeG[3].Value = 0.2
- PT.ColorOverTimeB[3].TimePercent = 1.0
- PT.ColorOverTimeB[3].Value = 1.0
-
- -- transparency over time
- PT.TransparencyOverTime[1].TimePercent = 0.0;
- PT.TransparencyOverTime[1].Value = 0.0;
-
- PT.TransparencyOverTime[2].TimePercent = 1.0;
- PT.TransparencyOverTime[2].Value = 0.5;
-
- -- size over time
- PT.SizeOverTime[1].TimePercent = 0.0;
- PT.SizeOverTime[1].Value = 1.0;
-
- PT.SizeOverTime[2].TimePercent = 1.0;
- PT.SizeOverTime[2].Value = 1.0;
-
- -- Speed over time
- PT.SpeedOverTime[1].TimePercent = 0.0;
- PT.SpeedOverTime[1].Value = 2.6;
-
- PT.SpeedOverTime[2].TimePercent = 0.5;
- PT.SpeedOverTime[2].Value = 0.4;
-
- PT.SpeedOverTime[3].TimePercent = 1.0;
- PT.SpeedOverTime[3].Value = 0.0;
-
- -- Tangent Speed over time
- PT.TangentSpeedOverTime[1].TimePercent = 0.0;
- PT.TangentSpeedOverTime[1].Value = 0.0;
-
- PT.TangentSpeedOverTime[2].TimePercent = 1.0;
- PT.TangentSpeedOverTime[2].Value = 0.0;
-
- -- GravityAcceleration over time
- PT.GravityAccelerationOverTime[1].TimePercent = 0.0;
- PT.GravityAccelerationOverTime[1].Value = 0.0;
-
- PT.GravityAccelerationOverTime[2].TimePercent = 1.0;
- PT.GravityAccelerationOverTime[2].Value = 0.0;
-
- -- AngleSpeed over time
- PT.AngleSpeedOverTime[1].TimePercent = 0.0;
- PT.AngleSpeedOverTime[1].Value = 0.0;
-
- PT.AngleSpeedOverTime[2].TimePercent = 1.0;
- PT.AngleSpeedOverTime[2].Value = 0.0;
-
-
- -------------------------------------------- lightning particle system
- desc = getEffectDescriptionP(ENET_EFFECT_PS_3WAYSLIGHTNING_BLUECHANNEL)
- Emitter = desc.PS.PSDescription
- PT = Emitter.ParticleTypesParams[1]
-
-
- PT.IsEmitterLocked = false
- PT.DrawOrder = 1
- PT.Material = ENMAT_PARTICLE_LIGHT
-
- PT.TextureName = "guardtower_lightning.dds";
-
- PT.ParticlesPerSecond = 3000;
- PT.InitialNumberOfParticles = 0.0;
- PT.BaseLifeTime = 0.6;
- PT.BaseLifeTimeVariance = 0.0;
- PT.BaseSpeed = 2.0;
- PT.BaseSpeedVariance = 0.5;
- PT.BaseAngle = 0.0;
- PT.BaseAngleVariance = 0.0;
- PT.BaseAngleSpeed = 0.0;
- PT.BaseAngleSpeedVariance = 0.0
- PT.BaseAngleSpeedDirection = 0;
- local vzbzd8 = D3DXVECTOR3:new(0.0,0.0,1.0)
- PT.BaseDirection = vzbzd8
- vzbzd8:delete()
- --PT.DirectionRelativeness = ENREL_FROMPARENTCENTER
- local vzbzd9 = D3DXVECTOR3:new(0.0,0.0,0.0)
- PT.BaseDirectionVariance = vzbzd9
- vzbzd9:delete()
- local vzbzd10 = D3DXVECTOR3:new(0,0,0)
- PT.BasePosition = vzbzd10
- vzbzd10:delete()
- local vzbzd11 = D3DXVECTOR3:new(0,0,0)
- PT.BasePositionVariance = vzbzd11
- vzbzd11:delete()
- PT.EmittingSurfaceType = ENEST_FACESPHERE
- PT.BaseSize = 24.0;
- PT.BaseSizeVariance = 0.3;
-
-
- -- color over time
- PT.ColorOverTimeR[1].TimePercent = 0.0
- PT.ColorOverTimeR[1].Value = 0.3
- PT.ColorOverTimeG[1].TimePercent = 0.0
- PT.ColorOverTimeG[1].Value = 0.3
- PT.ColorOverTimeB[1].TimePercent = 0.0
- PT.ColorOverTimeB[1].Value = 1.0
-
- PT.ColorOverTimeR[2].TimePercent = 1.0
- PT.ColorOverTimeR[2].Value = 0.3
- PT.ColorOverTimeG[2].TimePercent = 1.0
- PT.ColorOverTimeG[2].Value = 0.3
- PT.ColorOverTimeB[2].TimePercent = 1.0
- PT.ColorOverTimeB[2].Value = 1.0
-
- -- transparency over time
- PT.TransparencyOverTime[1].TimePercent = 0.0;
- PT.TransparencyOverTime[1].Value = 1.0;
-
- PT.TransparencyOverTime[2].TimePercent = 1.0;
- PT.TransparencyOverTime[2].Value = 1.0;
-
- -- size over time
- PT.SizeOverTime[1].TimePercent = 0.0;
- PT.SizeOverTime[1].Value = 1.0;
-
- PT.SizeOverTime[2].TimePercent = 0.1;
- PT.SizeOverTime[2].Value = 1.0;
-
- PT.SizeOverTime[3].TimePercent = 0.3;
- PT.SizeOverTime[3].Value = 2.0;
-
- PT.SizeOverTime[4].TimePercent = 1.0;
- PT.SizeOverTime[4].Value = 1.0;
-
- -- Speed over time
- PT.SpeedOverTime[1].TimePercent = 0.0;
- PT.SpeedOverTime[1].Value = 1.0;
-
- PT.SpeedOverTime[2].TimePercent = 1.0;
- PT.SpeedOverTime[2].Value = 1.0;
-
- -- Tangent Speed over time
- PT.TangentSpeedOverTime[1].TimePercent = 0.0;
- PT.TangentSpeedOverTime[1].Value = 0.0;
-
- PT.TangentSpeedOverTime[2].TimePercent = 1.0;
- PT.TangentSpeedOverTime[2].Value = 0.0;
-
- -- GravityAcceleration over time
- PT.GravityAccelerationOverTime[1].TimePercent = 0.0;
- PT.GravityAccelerationOverTime[1].Value = 0.0;
-
- PT.GravityAccelerationOverTime[2].TimePercent = 1.0;
- PT.GravityAccelerationOverTime[2].Value = 0.0;
-
- -- AngleSpeed over time
- PT.AngleSpeedOverTime[1].TimePercent = 0.0;
- PT.AngleSpeedOverTime[1].Value = 0.0;
-
- PT.AngleSpeedOverTime[2].TimePercent = 1.0;
- PT.AngleSpeedOverTime[2].Value = 0.0;
-
-
- ------ light source
- --
- -- lightsource creation test
- --
- --desc = getEffectDescriptionP(ENET_NOTHING)
- --desc.ClassID = ENCLASS_LIGHTSOURCE
- --desc.EffectClassType = ENECT_LIGHTSOURCE
-
- --desc.LifeLimit = 4.0
-
- --desc.ScriptSet = ENSCRIPTSET_UNKNOWN
- --desc.RelativePosition = ENLOCALPOS_NOTSPECIFIED
- local vzbzd12 = D3DXVECTOR3:new(0,0,0)
- --desc.LocalPosition = vzbzd12
- vzbzd12:delete()
- --desc.ActivityType = ENACT_SEMIACTIVE
-
- -- add interpolators
- --local interpolator = createInterpolator()
- --interpolator:addKey(0.0,200.0)
- --interpolator:addKey(0.3,150.0)
- --interpolator:addKey(0.6,250.0)
- --interpolator:addKey(0.9,200.0)
- --interpolator:finalize(false)
- -- add interpolator on light range
- --desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_LIGHT_RANGE))
-
- --local interpolator = createInterpolator()
- --interpolator:addKey(0.0,0.3)
- --interpolator:addKey(0.2,0.1)
- --interpolator:addKey(0.4,0.3)
- --interpolator:addKey(0.6,0.1)
- --interpolator:addKey(0.8,0.3)
- --interpolator:finalize(false)
- -- add interpolator on R G B colors
- --desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_R))
- --desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_G))
-
- --local interpolator = createInterpolator()
- --interpolator:addKey(0.0,0.7)
- --interpolator:addKey(0.2,0.3)
- --interpolator:addKey(0.4,0.7)
- --interpolator:addKey(0.6,0.3)
- --interpolator:addKey(0.8,0.7)
- --interpolator:finalize(false)
- -- add interpolator on R G B colors
- --desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_B))
-
- --
- -- end lightsource creation description
- --
-
-
- ------ light source
- --
- -- lightsource creation test
- --
- desc = getEffectDescriptionP(ENET_EFFECT_LIGHT_GUARDTOWER_SPAWN)
- desc.ClassID = ENCLASS_LIGHTSOURCE
- desc.EffectClassType = ENECT_LIGHTSOURCE
-
- desc.LifeLimit = 4.0
-
- desc.ScriptSet = ENSCRIPTSET_UNKNOWN
- desc.RelativePosition = ENLOCALPOS_NOTSPECIFIED
- local vzbzd13 = D3DXVECTOR3:new(0,0,0)
- desc.LocalPosition = vzbzd13
- vzbzd13:delete()
- desc.ActivityType = ENACT_SEMIACTIVE
-
- desc:clearInterpolators()
-
- local interpolator = createInterpolator()
- interpolator:addKey(0.0,400.0)
- interpolator:addKey(0.5,400.0)
- interpolator:addKey(3.0,200.0)
- interpolator:addKey(4.0,200.0)
- interpolator:finalize(false)
- -- add interpolator on light range
- desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_LIGHT_RANGE))
-
- local interpolator = createInterpolator()
- interpolator:addKey(0.0,0.0)
- interpolator:addKey(1.5,0.1)
- interpolator:addKey(3.0,0.1)
- interpolator:addKey(4.0,0.1)
- interpolator:finalize(false)
- -- add interpolator on R G B colors
- desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_R))
- desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_G))
-
- local interpolator = createInterpolator()
- interpolator:addKey(0.0,0.0)
- interpolator:addKey(1.5,0.3)
- interpolator:addKey(3.0,0.5)
- interpolator:addKey(4.0,0.5)
- interpolator:finalize(false)
- -- add interpolator on R G B colors
- desc:addInterpolator(interpolator,getFieldOffset(EN_FIELD_DIFFUSE_B))
-
- --
- -- end lightsource creation description
- --
- desc = getEffectDescriptionP(ENET_EFFECT_PS_GUARDTOWER_HIPOWER)
-
- desc.ClassID = ENCLASS_SIMPLEPARTICLESYSTEM
- desc.EffectClassType = ENECT_PARTICLESYSTEM
-
- desc.ScriptSet = ENSCRIPTSET_UNKNOWN
- desc.RelativePosition = ENLOCALPOS_NOTSPECIFIED
- local vzbzd14 = D3DXVECTOR3:new(0,0,0)
- desc.LocalPosition = vzbzd14
- vzbzd14:delete()
- desc.isAnimateTexture = false
- desc.RenderType = ENRENDERTYPE_GEOMETRY
-
- Emitter = desc.PS.PSDescription
- Emitter.ParticleTypesNumber = 2
- local vzbzd15 = D3DXVECTOR3:new(0,0,0)
- Emitter.EmitterPosition = vzbzd15
- vzbzd15:delete()
- local vzbzd16 = D3DXVECTOR3:new(0,0,0)
- Emitter.EmitterDirection = vzbzd16
- vzbzd16:delete()
- Emitter.EmitterLifeTime = 10000
-
- PT = Emitter.ParticleTypesParams[1]
- PT.IsEmitterLocked = true
- PT.DrawOrder = 1
- PT.Material = ENMAT_PARTICLE_LIGHT
-
- PT.TextureName = "small_lightning.dds";
-
- PT.ParticlesPerSecond = 60.0;
- PT.InitialNumberOfParticles = 0.0;
- PT.BaseLifeTime = 0.1;
- PT.BaseLifeTimeVariance = 0.0;
- PT.BaseSpeed = 0.0;
- PT.BaseSpeedVariance = 0.0;
- PT.BaseAngle = 3.14;
- PT.BaseAngleVariance = 1.0;
- PT.BaseAngleSpeed = 3.0;
- PT.BaseAngleSpeedVariance = 0.5
- PT.BaseAngleSpeedDirection = 1;
- local vzbzd17 = D3DXVECTOR3:new(0.0,0.0,-1.0)
- PT.BaseDirection = vzbzd17
- vzbzd17:delete()
- PT.DirectionRelativeness = ENREL_PARENT
- local vzbzd18 = D3DXVECTOR3:new(0,0,0)
- PT.BasePosition = vzbzd18
- vzbzd18:delete()
- local vzbzd19 = D3DXVECTOR3:new(8,8,8)
- PT.BasePositionVariance = vzbzd19
- vzbzd19:delete()
- PT.EmittingSurfaceType = ENEST_FACESPHERE
- PT.BaseSize = 15.0;
- PT.BaseSizeVariance = 0.5;
-
- local vzbzd20 = D3DXVECTOR3:new(-1.0,0.0,0.0)
- PT.TangentDirection = vzbzd20
- vzbzd20:delete()
- PT.TangentAngleMin = 0.0;
- PT.TangentAngleMax = 6.28;
- PT.TangentSpeed = 0.0;
- PT.TangentSpeedVariance = 0.0;
-
- -- color over time
- PT.ColorOverTimeR[1].TimePercent = 0.0
- PT.ColorOverTimeR[1].Value = 0.5
- PT.ColorOverTimeG[1].TimePercent = 0.0
- PT.ColorOverTimeG[1].Value = 0.5
- PT.ColorOverTimeB[1].TimePercent = 0.0
- PT.ColorOverTimeB[1].Value = 0.5
-
- PT.ColorOverTimeR[2].TimePercent = 1.0
- PT.ColorOverTimeR[2].Value = 0.5
- PT.ColorOverTimeG[2].TimePercent = 1.0
- PT.ColorOverTimeG[2].Value = 0.5
- PT.ColorOverTimeB[2].TimePercent = 1.0
- PT.ColorOverTimeB[2].Value = 0.5
-
- -- transparency over time
- PT.TransparencyOverTime[1].TimePercent = 0.0;
- PT.TransparencyOverTime[1].Value = 0.0;
-
- PT.TransparencyOverTime[2].TimePercent = 0.1;
- PT.TransparencyOverTime[2].Value = 0.5;
-
- PT.TransparencyOverTime[3].TimePercent = 0.95;
- PT.TransparencyOverTime[3].Value = 0.8;
-
- PT.TransparencyOverTime[4].TimePercent = 1.0;
- PT.TransparencyOverTime[4].Value = 0.9;
- -- size over time
- PT.SizeOverTime[1].TimePercent = 0.0;
- PT.SizeOverTime[1].Value = 1.0;
-
- PT.SizeOverTime[2].TimePercent = 1.0;
- PT.SizeOverTime[2].Value = 1.0;
-
- -- Speed over time
- PT.SpeedOverTime[1].TimePercent = 0.0;
- PT.SpeedOverTime[1].Value = 1.0;
-
- PT.SpeedOverTime[2].TimePercent = 1.0;
- PT.SpeedOverTime[2].Value = 1.0;
-
- -- Tangent Speed over time
- PT.TangentSpeedOverTime[1].TimePercent = 0.0;
- PT.TangentSpeedOverTime[1].Value = 0.0;
-
- PT.TangentSpeedOverTime[2].TimePercent = 1.0;
- PT.TangentSpeedOverTime[2].Value = 0.0;
-
- -- GravityAcceleration over time
- PT.GravityAccelerationOverTime[1].TimePercent = 0.0;
- PT.GravityAccelerationOverTime[1].Value = 0.0;
-
- PT.GravityAccelerationOverTime[2].TimePercent = 1.0;
- PT.GravityAccelerationOverTime[2].Value = 0.0;
-
- -- AngleSpeed over time
- PT.AngleSpeedOverTime[1].TimePercent = 0.0;
- PT.AngleSpeedOverTime[1].Value = 1.0;
-
- PT.AngleSpeedOverTime[2].TimePercent = 1.0;
- PT.AngleSpeedOverTime[2].Value = 1.0;
-
- PT = Emitter.ParticleTypesParams[2]
- PT.IsEmitterLocked = false
- PT.DrawOrder = 2
- PT.Material = ENMAT_PARTICLE_LIGHT
-
- PT.TextureName = "star.dds";
-
- PT.ParticlesPerSecond = 10.0;
- PT.InitialNumberOfParticles = 0.0;
- PT.BaseLifeTime = 0.2;
- PT.BaseLifeTimeVariance = 0.0;
- PT.BaseSpeed = 100.0;
- PT.BaseSpeedVariance = 1.0;
- PT.BaseAngle = 3.14;
- PT.BaseAngleVariance = 1.0;
- PT.BaseAngleSpeed = 3.0;
- PT.BaseAngleSpeedVariance = 0.5
- PT.BaseAngleSpeedDirection = 1;
- local vzbzd21 = D3DXVECTOR3:new(0.0,1.0,0.0)
- PT.BaseDirection = vzbzd21
- vzbzd21:delete()
- PT.DirectionRelativeness = ENREL_PARENT
- local vzbzd22 = D3DXVECTOR3:new(0,0,0)
- PT.BasePosition = vzbzd22
- vzbzd22:delete()
- local vzbzd23 = D3DXVECTOR3:new(8,8,8)
- PT.BasePositionVariance = vzbzd23
- vzbzd23:delete()
- PT.EmittingSurfaceType = ENEST_FACESPHERE
- PT.BaseSize = 5.0;
- PT.BaseSizeVariance = 0.5;
-
- local vzbzd24 = D3DXVECTOR3:new(1.0,0.0,0.0)
- PT.TangentDirection = vzbzd24
- vzbzd24:delete()
- PT.TangentAngleMin = 0.0;
- PT.TangentAngleMax = 6.28;
- PT.TangentSpeed = 100.0;
- PT.TangentSpeedVariance = 1.0;
-
- -- color over time
- PT.ColorOverTimeR[1].TimePercent = 0.0
- PT.ColorOverTimeR[1].Value = 0.2
- PT.ColorOverTimeG[1].TimePercent = 0.0
- PT.ColorOverTimeG[1].Value = 0.2
- PT.ColorOverTimeB[1].TimePercent = 0.0
- PT.ColorOverTimeB[1].Value = 1.0
-
- PT.ColorOverTimeR[2].TimePercent = 1.0
- PT.ColorOverTimeR[2].Value = 0.2
- PT.ColorOverTimeG[2].TimePercent = 1.0
- PT.ColorOverTimeG[2].Value = 0.2
- PT.ColorOverTimeB[2].TimePercent = 1.0
- PT.ColorOverTimeB[2].Value = 1.0
-
- -- transparency over time
- PT.TransparencyOverTime[1].TimePercent = 0.0;
- PT.TransparencyOverTime[1].Value = 1.0;
-
- PT.TransparencyOverTime[2].TimePercent = 1.0;
- PT.TransparencyOverTime[2].Value = 1.0;
-
- -- size over time
- PT.SizeOverTime[1].TimePercent = 0.0;
- PT.SizeOverTime[1].Value = 1.0;
-
- PT.SizeOverTime[2].TimePercent = 1.0;
- PT.SizeOverTime[2].Value = 1.0;
-
- -- Speed over time
- PT.SpeedOverTime[1].TimePercent = 0.0;
- PT.SpeedOverTime[1].Value = 1.0;
-
- PT.SpeedOverTime[2].TimePercent = 0.5;
- PT.SpeedOverTime[2].Value = 0.2;
-
- PT.SpeedOverTime[3].TimePercent = 1.0;
- PT.SpeedOverTime[3].Value = 0.0;
-
- -- Tangent Speed over time
- PT.TangentSpeedOverTime[1].TimePercent = 0.0;
- PT.TangentSpeedOverTime[1].Value = 1.0;
-
- PT.TangentSpeedOverTime[2].TimePercent = 0.5;
- PT.TangentSpeedOverTime[2].Value = 0.2;
-
- PT.TangentSpeedOverTime[3].TimePercent = 1.0;
- PT.TangentSpeedOverTime[3].Value = 0.0;
-
- -- GravityAcceleration over time
- PT.GravityAccelerationOverTime[1].TimePercent = 0.0;
- PT.GravityAccelerationOverTime[1].Value = 0.0;
-
- PT.GravityAccelerationOverTime[2].TimePercent = 1.0;
- PT.GravityAccelerationOverTime[2].Value = 0.0;
-
- -- AngleSpeed over time
- PT.AngleSpeedOverTime[1].TimePercent = 0.0;
- PT.AngleSpeedOverTime[1].Value = 1.0;
-
- PT.AngleSpeedOverTime[2].TimePercent = 1.0;
- PT.AngleSpeedOverTime[2].Value = 1.0;
-
-
- ------------------------------------------------------------------------------------------------------
- ------------------------ effects related to unit------------------------------------------------------
- ------------------------------------------------------------------------------------------------------
-
- function bullets_lightning_fire()
-
- local bullet = uniGetExecutor()
- bullet:setTransformOwner()
- local fly_ps = bullet:addSimpleEffect(ENET_EFFECT_PS_3WAYSLIGHTNING_BLUECHANNEL)
- waitDeath(bullet:addMoveEffect(ENET_EFFECT_MOVE_FLY4POINTSCURVE,100000,uniGetTarget()))
- local hit_ps = bullet:addSimpleEffect(ENET_EFFECT_PS_BLUELIGHTNINGHIT)
- fly_ps:suspendedDestroy(1.0)
- pause(0.6)
- hit_ps:suspendedDestroy(1.0)
- uniGetTarget():executeCommand(ENC_DAMAGED)
- pause(1.0)
- bullet:destroy()
- end
-
- registerCommand(ENSCRIPTSET_BULLET_3CHANNELSLIGHTNING,ENC_FIRE1,"bullets_lightning_fire")
-